#ifndef EVENT_POLLER_H_INCLUDED
#define EVENT_POLLER_H_INCLUDED

#include <set>
#include "Singleton.h"

class EventHandler;

class EventPoller : public Uncopyable
{
private:
  EventPoller() {}
  friend class Singleton<EventPoller>;

public:
  void Update();
  void AddHandler(EventHandler* eh);
  void RemoveHandler(EventHandler* eh);

private:
  typedef std::set<EventHandler*> Handlers;
  Handlers m_handlers;
};

typedef Singleton<EventPoller> TheEventPoller;

#endif

